package com.aaa.member.controller;

import com.aaa.common.util.RandomUtil;
import com.aaa.member.entity.Order;
import com.aaa.member.service.OrderService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * (Order)表控制层
 *
 * @author makejava
 * @since 2020-11-24 10:56:24
 */
@RestController
@RequestMapping("order")
public class OrderController {
    /**
     * 服务对象
     */
    @Resource
    private OrderService orderService;

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("selectOne")
    public Order selectOne(Integer id) {
        return this.orderService.queryById(id);
    }

    /**
     * 根据订单id显示订单详情
     * @param id
     * @return
     */
    @GetMapping("selectOrderDetail")
    public Map selectOrderDetail(Integer id){
        return orderService.selectOrderDetail(id);
    }

    /**
     * 通过用户id和订单状态显示订单列表
     * 订单状态（输入Entered：1，提交Booked：2，预约Reserved：3，使用中Inuse：4，交还Returned：5，取消Cancelled：6）
     * @param order
     * @return
     */
    @GetMapping("queryAll")
    public List<Map> queryAll(Order order){
        return orderService.queryAll(order);
    }

    /**
     * 修改订单id修改订单当前状态为已取消或者还车
     * @param order
     * @return
     */
    @PutMapping("updateOrderState")
    public Order updateOrderState(Order order){
        return orderService.update(order);
    }


    /**
     * 新增订单
     * @param order
     * @return
     */
    @PostMapping("insertOrder")
    public Order insertOrder(@RequestBody Order order){
        order.setAddtime(new Date());
        order.setOrderNo(RandomUtil.randomCode());
        return orderService.insert(order);
    }


    /**
     * 通过选车地址选车
     * @param map
     * @return
     */
    @PostMapping("selectCarByAddress")
    public List<Map> selectCarByAddress(@RequestBody Map map) {
        return orderService.selectCarByAddress(map);
    }

}